package state;

/**
 * 状态模式
 *  应对同一个对象里不同状态变化时不同的行为变化
 *  允许一个对象内部状态改变时，改变它的行为，像修改了自己的类一样
 *  1.上下文信息类：存储当前状态的类，对外提供更新状态的操作
 *  2.抽象状态类：抽象或接口，声明状态更新的操作方法有哪些
 *  3.具体状态类：实现类，根据具体的场景来指定对应状态改变后的代码实现
 * 当业务状态复杂且发生变迁，则使用状态设计模式降低耦合度
 * 状态之间天然隔离
 */
public class StateTest {
    public static void main(String[] args) {
        Context context = new Context(null);
        //满足条件了，状态更新
        context.update();
        //满足条件了，状态再次更新
        context.update();
        //满足条件了，状态再次更新
        context.update();

    }
}
